/**
 * @Name: Gun
 * @Description:
 * @Author: colfish
 * @Date: 2021/4/19
 */
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class Gun extends Canvas implements Runnable {

       public Gun() {
              // 在创建对象时 创建并运行线程
              Thread t = new Thread(this);
              t.start();
       }

       public void run() {
              while (true) {
                     // 设置帧数
                     try {
                            Thread.sleep(5);
                     } catch (InterruptedException e) {
                            e.printStackTrace();
                     }

                     // 控制子弹向下移动
                     y++;
                     if (y == 400)
                            y = 0;

                     this.repaint();

              }
       }

       int y = 0;

       /**
         * g 是画笔 在paint 方法中作画 外部调用是repaint方法
         */
               public void paint(Graphics g) {

              g.setColor(Color.red);
              g.fillOval(30, y, 20, 20);

              g.setColor(Color.black);
              g.fillRect(20, 0, 40, 80);

       }

       public static void main(String[] args) {

              // 定义并配置顶层窗口
              JFrame jf = new JFrame();
              jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              jf.setBounds(0, 0, 400, 400);
              jf.setVisible(true);
              // 配置画板 顺便 运行线程
              Gun c = new Gun();
              c.setBounds(0, 0, 400, 400);
              jf.add(c);
              c.setVisible(true);

       }

}